<?php
namespace Swiftx\Interfaces\DataBase;

/**
 * 数据库方言接口
 * @author      胡永强 <odaytudio@gmail.com>
 * @since       2015-12-09
 * @copyright   Copyright (c) 2014-2015 Swiftx Inc.
 * @property string $sql
 */
interface Update {

    /**
     * 数据表全名
     * @param string $table
     * @param string|null $name
     * @return Update
     */
    public function table(string $table, string $name=null):Update;

    /**
     * 增加查询条件
     * @param array ...$args
     * @return Update
     */
    public function where(... $args):Update;

    /**
     * 新增且条件
     * @param array ...$args
     * @return Update
     */
    public function and(... $args):Update;

    /**
     * 新增或条件
     * @param array ...$args
     * @return Update
     */
    public function or(... $args):Update;

    /**
     * 需要修改的数据
     * @param array ...$args
     * @return Update
     */
    public function data(... $args):Update;

    /**
     * 要修改的数据
     * @param string $key
     * @param string|int $value
     * @return Update
     */
    public function set(string $key, $value):Update;

    /**
     * 获取SQL语句
     * @return string
     */
    public function getSql():string;

    /**
     * 获取SQL语句
     * @return string
     */
    public function __toString();

}